Flash memory is a solid state non-volatile memory that is erased in large sections, and is prevalent in many kinds of electronics. Flash memory is composed of memory cells that each include a floating gate transistor. The state of the memory cell is controlled by the amount of charge on the corresponding floating gate. Electrons may be added to (through programming) or removed from (through erasure) the floating gate in order to change the state of the memory cell. Traditionally, each memory cell contains a single bit of information by having only two distinctive states, each state corresponding to a distinct range of charge on the floating gate. Newer flash memory cells might each contain multiple bits of information by having more numerous distinctive states (e.g., four states for two bits of information).
There are two types of flash memory, NOR flash and NAND flash. Compared to NOR flash, NAND flash memory has shorter erase times and programs more data per second, and requires less space per memory cell. One conventional specification defining the organization of NAND flash memory as well as the communication protocol for communicating with NAND flash memory is referred to as the Open NAND Flash Interface (ONFI) standard.
According to the ONFI standard, NAND flash memory is organized into logical units. Each logical unit includes an array of memory cells and corresponding control circuitry for responding to commands to read from and write to portions of the memory array. The ONFI standard refers to these logical units as “Logical Unit Numbers” or “LUNs”. According to the ONFI standard, each NAND flash memory LUN is organized into blocks, wherein each LUN contains multiple blocks. Furthermore, each block contains multiple pages, and each page contains multiple memory cells.